home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
F-French
/
(c)f1.d64
/
pendu
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
6KB
|
156 lines
20 REM
30 REM 1984 DENIS MARCOUX.
40 REM *************************
50 REM ****** PENDU **********
60 REM *************************
70 REM **** VARIABLES ********
80 REM *************************
90 REM
100 REM V: V.I.C S: S.I.D
110 REM MT$: MOT CH: CHOIX PRIS OU NON
120 REM MX: MAX MOTS T: TEST RECHERCHE
130 REM B: MOTS TROUVES
140 REM M: MOTS MANQUES
150 REM PR$: PREMIERE LETTRE
160 REM DR$: DERNIERE LETTRE
170 REM AF$: MOT POUR AFFICHAGE
180 REM I, N, L: COMPTEURS POUR LES BOUCLES
190 REM PL$: PLACE LE CURSEUR
200 REM NO$: NUMEROS POUR AFFICHAGE
210 REM AL$: ALPHABET POUR CHOIX
220 REM TT$: TROTTOIR
230 REM MT: MOT CHOISI AU HASARD
240 REM CH: LISTE DES MOTS UTILISES
250 REM L$: LETTRE (TEMPORAIRE-GOSUB)
260 REM CT: COMPTEUR D'ESSAIS
270 REM PL$: PLACE LE CURSEUR
280 REM X: LONGEUR DE LA CHAINE A IMPRIMER
290 REM
300 REM ****************************
310 REM ****** INITIALISATION ******
320 REM ****************************
330 MX=20:REM NOMBRE DE MOTS
340 DIMMT$(MX),CH(MX):V=RND(TI):REM SEMENCE DU GENERATEUR DE HASARD
350 V=53248:S=54272:PL$=" ":REM VIC ET SID
360 NO$=PL$+""+"1234567890123456789"
370 TT$=" [163][163][163][163][163][163][163][163][163][163][163][163]":X=LEN(PL$)+1+LEN(TT$):TT$=TT$+NO$
380 PRINT"[147]"SPC(8)"NE TE FAIS PAS PENDRE!"
390 POKEV+21,12:POKEV+28,12
400 POKE2042,13:POKE2043,14
410 FORN=0TO127:READ L:POKE832+N,L:NEXT
420 FORI=1TOMX:READ MT$(I):NEXT
430 POKEV+23,8:POKEV+29,8
440 POKEV+4,095:POKEV+5,133
450 POKEV+6,200:POKEV+7,113
460 AL$="ABCDEFGHIJKLMNOPQRSTUVWXYZ[146]"
470 REM ****************************
480 REM *** CHOIX D'UN MOT *****
490 REM ****************************
500 REM
510 T=0:FORN=1TOMX:IFCH(N)=0THENT=1
520 NEXT:IFT=0THENPRINT"[147]JE N'AI PLUS DE MOTS ":GOTO980
530 MT=INT(RND(1)*MX)+1:IFCH(MT)=1THEN530
540 CH(MT)=1:CT=0:REM CT COMPTE LES ESSAIS,CH(I) INDIQUE SI LE MOT I EST PRIS
550 PR$=LEFT$(MT$(MT),1):DR$=RIGHT$(MT$(MT),1):AF$=PR$:REM PLACE LES LETTRES
560 REM DU DEBUT ET DE LA FIN
570 L$=PR$:GOSUB1360:L$=DR$:GOSUB1360:L$="":REM RETIRER CES LETTRES DE LA LISTE
580 FORN=2TOLEN(MT$(MT))-1
590 IF(MID$(MT$(MT),N,1)=PR$)OR(MID$(MT$(MT),N,1)=DR$)THENAF$=AF$+MID$(MT$(MT),N,1):GOTO610
600 AF$=AF$+"[166]"
610 NEXT
620 AF$=AF$+DR$:REM AJOUTER LA DERNIERE LETTRE
630 REM ******************************
640 REM *** ROUTINE PRINCIPALE ****
650 REM ******************************
660 PRINT"[147]CHOISI UNE LETTRE, OU LA TOUCHE F1[146]"
670 PRINT"POUR CONSULTER LES CHOIX QUI TE RESTENT,"
680 PRINT"OU F7[146] POUR RISQUER UN MOT COMPLET"PL$AF$LEFT$(TT$,X+LEN(MT$(MT)))
690 GETL$:IFL$=""THEN690
700 IFL$="[133]"THENGOSUB1070:GOTO690:REM MONTRER LES CHOIX QUI RESTENT
710 IFL$="[136]"THEN840:REM UN MOT COMPLET
720 IFL$<"A"OR L$>"Z"THEN690
730 T=0:FORN=1TOLEN(MT$(MT))
740 IFMID$(MT$(MT),N,1)=L$THENAF$=LEFT$(AF$,N-1)+L$+RIGHT$(AF$,LEN(AF$)-N):T=1
750 NEXT
760 GOSUB1360:REM RETIRER UNE LETTRE DES CHOIX
770 IFT=0THENGOSUB1120:CT=CT+1:REM BOUGER LE BONHOMME
780 IFT=1THENPRINT"[147] PAS MAL!"PL$AF$:FORN=1TO1000:NEXT
790 T=0:FORN=2TOLEN(AF$)-1:IFMID$(AF$,N,1)="[166]"THENT=1:REM Y A-T-IL DES TROUS?
800 NEXT:IFCT=7THENGOSUB1190:FORN=1TO2000:NEXT:GOTO900:REM PENDU!
810 IF T=1 THENPRINT"IL TE RESTE ";7-CT;" ESSAIS":FORN=1TO1000:NEXT:GOTO660
820 B=B+1:PRINT"[147]TU AS TROUVE!!![146]"PL$AF$LEFT$(TT$,X+LEN(MT$(MT))):FORN=1TO1000:NEXT
830 GOTO 950: REM C'EST FINI?
840 REM ******************************
850 REM ***** RISQUE LE MOT! ****
860 REM ******************************
870 REM
880 PRINT"[147]HOU LA LA! QUEL EST LE MOT?"
890 INPUTL$:IFL$=MT$(MT)THENAF$=""+MT$(MT)+"[146]":GOTO820
900 PRINT" C'EST FICHU!":PRINT" LE MOT ETAIT: "MT$(MT)"[146]"
910 M=M+1
920 REM ******************************
930 REM ***** JOUER ENCORE? **********
940 REM ******************************
950 PRINT"VEUX-TU JOUER ENCORE? (O[146]UI OU N[146]ON)"
960 GETL$:IFL$=""THEN960
970 IFLEFT$(L$,1)="O"THEN440
980 PRINT"[147]TU AS ";B;"[157] MOTS TROUVES[146]"CHR$(13)" ET "M"[157] MOTS MANQUES":END
990 REM
1000 REM
1010 REM ****** SOUS-ROUTINES *********
1020 REM
1030 REM
1040 REM *******************************
1050 REM *** AFFICHAGE DES CHOIX *****
1060 REM *******************************
1070 PRINT"[147]TES CHOIX POSSIBLES:":PRINT AL$
1080 PRINTPL$AF$LEFT$(TT$,X+LEN(MT$(MT))):RETURN
1090 REM *******************************
1100 REM *** BOUGER LE BONHOMME ********
1110 REM *******************************
1120 IFPEEK(V+4)>180THEN1140
1130 FORN=1TO5:POKEV+4,PEEK(V+4)+6:GOSUB1260:POKEV+4,PEEK(V+4)-1:GOSUB1260:NEXT:RETURN
1140 GOSUB1260:POKEV+5,PEEK(V+5)-4:POKEV+4,PEEK(V+4)+7:GOSUB1260:RETURN
1150 REM
1160 REM *****************************
1170 REM ********* PENDU *************
1180 REM
1190 FORL=0TO24:POKES+L,0:NEXT:POKEV+4,225:POKEV+5,PEEK(V+5)+2
1200 POKES+1,130:POKES+5,9:POKES+15,30:POKES+24,15:FORL=1TO6 :POKES+4,21
1210 FORT=1TOL*100+300:POKES+4,20:FORT=1TO L*100+100:NEXT
1220 POKEV+5,PEEK(V+5)-3*(-1)^L:NEXT
1230 RETURN
1240 REM
1250 REM ******************************
1260 REM
1270 REM ********** DES PAS *********
1280 REM
1290 FORL=0TO24:POKES+L,0:NEXT
1300 POKES+0,240:POKES+1,33
1310 POKES+5,8:POKES+22,104:POKES+23,1:POKES+24,79
1320 POKES+4,129:FORT=1TO250:NEXT
1330 POKES+4,128:FORT=1TO30:NEXT:POKES+24,0
1340 RETURN
1350 REM ******************************
1360 FORN=1TOLEN(AL$):IFL$=MID$(AL$,N,1)THENAL$=LEFT$(AL$,N-1)+RIGHT$(AL$,LEN(AL$)-N)
1370 NEXT:RETURN
1380 DATA 0, 20, 0, 0, 85, 0, 0, 105, 0
1390 DATA 0, 65, 0, 0, 20, 0, 0, 20, 0
1400 DATA 2, 170, 128, 8, 60, 32, 32, 60, 8
1410 DATA 128, 60, 2, 64, 60, 1, 64, 60, 1
1420 DATA 0, 60, 0, 0, 65, 0, 0, 65, 0
1430 DATA 0, 65, 0, 0, 65, 0, 0, 65, 0
1440 DATA 0, 65, 0, 0, 65, 0, 2, 130, 128,0
1450 DATA 0, 0, 85, 0, 0, 49, 0, 0, 49
1460 DATA 0, 0, 49, 0, 0, 205, 0, 3, 3
1470 DATA 0, 0, 205, 0, 0, 49, 0, 0, 1
1480 DATA 0, 0, 1, 0, 0, 1, 0, 0, 1
1490 DATA 0, 0, 21, 0, 0, 21, 0, 1, 85
1500 DATA 0, 1, 85, 0, 21, 85, 0, 21, 85
1510 DATA 1, 85, 85, 1, 85, 85, 85, 85, 85,0
1520 REM ******************************
1530 REM ********* MOTS ***************
1540 DATA ONOMATOPE,CAPRICE,AFRICAIN,UNIVERSITE,COUPABLE,DEBILITE,CONCIERGERIE
1550 DATATRAVAILLEUR,INFORMATICIEN,AMUSANT,CORRUPTION,AMABILITE,DOUBLURE,ESPION
1560 DATAQUATORZE,UNPIEGE,CONFORTABLE,MENSUEL,PRECEDENT,BORDEREAU